package com.xuan.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuan.entity.dto.*;
import com.xuan.entity.po.User;
import com.xuan.entity.result.PageResult;
import com.xuan.entity.result.Result;
import com.xuan.entity.vo.UserInfoVO;
import com.xuan.entity.vo.UserVO;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xuan
 * @since 2025-06-12
 */
public interface IUsersService extends IService<User> {

    PageResult<UserInfoVO> getUsers(Long userId, UsersPageDTO usersPageDTO, HttpServletRequest request);

    Result<String> register(UserRegisterDTO userRegisterDTO, HttpServletRequest request);

    Result<UserVO> login(UserLoginDTO userLoginDTO, HttpServletRequest request);

    Result<UserInfoVO> getUsersById(Long userId, Long currentUserId, HttpServletRequest request);

    Result<String> updateUser(Long userId, UserUpdateDTO userUpdateDTO, HttpServletRequest request);

    Result<String> resetPassword(PassWordResetDTO passWordResetDTO, HttpServletRequest request);
}
